//using Wizard.Interfaces;
using Wizard.Runtime;

namespace Wizard.Statements
{
    public abstract class Statement : IStatement
    {

        public virtual void OnRun(IStatementArgs args, RunArgs runArgs) { }
        public virtual void OnUndo(IStatementArgs args, UndoArgs undoArgs) { }

        public virtual void OnSubComplete(IStatementArgs args, SubCompleteArgs runArgs) { }
        public virtual void OnUndone(IStatementArgs args, UndoneArgs undoneArgs) { }
       
        public virtual void OnHibernate(IStatementArgs args, HibernateArgs requireRestoreForChildren) { }
        public virtual void OnRestore(IStatementArgs args, RunArgs runArgs) { }
        public virtual void OnDiscard(IStatementArgs args) { }
    }
}